﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BUS;
using DTO;
using System.Data;
using System.Web.SessionState;

namespace HotelManagement.ModSystem
{
    public partial class Login : System.Web.UI.Page, IRequiresSessionState
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnDangnhap_Click(object sender, EventArgs e)
        {
            Sys_User user = new Sys_User();
            user.UserNme=TxtUser.Text;
            user.Password=TxtPassword.Text; 
            if (!this.CheckTextbox(this.TxtUser))
            {
                this.TxtUser.Focus();
                base.Response.Write("<script>alert('Tên đăng nhập không hợp lệ!.')</script>");
            }
            if (!this.CheckTextbox(this.TxtPassword))
            {
                this.TxtPassword.Focus();
                base.Response.Write("<script>alert('Mật khẩu không hợp lệ!.')</script>");
            }
            else
            {
                try
                {
                    user.UserNme = this.TxtUser.Text;
                    //phan nay sau nay thay bang ma hoa
                    user.Password = this.TxtPassword.Text;
                    DataTable islogin = Sys_UserBL.IsLogin(user);
                    Sys_User us = new Sys_User();
                    if (islogin.Rows.Count > 0)
                    {
                       
                        us.IdUser = short.Parse(islogin.Rows[0]["IdUser"].ToString());
                        us.UserNme = islogin.Rows[0]["UserNme"].ToString();
                        us.UserLevel = short.Parse(islogin.Rows[0]["UserLevel"].ToString());
                        us.IsExpiry=bool.Parse(islogin.Rows[0]["IsExpiry"].ToString());
                        if (us.IsExpiry)
                        {
                            base.Response.Write("<script>alert('Người dùng này hiện đã hết hạn đăng nhập!.')</script>");
                            this.TxtUser.Focus();
                            this.TxtUser.Text = "";
                            this.TxtPassword.Text = "";
                            return;
                        }

                    }
                    if (user.UserNme == "")
                    {
                        this.TxtUser.Focus();
                        base.Response.Write("<script>alert('Lỗi, Tên đăng nhập hoặc Password không hợp lệ !.')</script>");
                       
                    }
                    else
                    {
                        this.Session.Add("IdUser", us.IdUser);
                        this.Session.Add("UserNme", us.UserNme);
                        this.Session.Add("UserLevel", us.UserLevel);
                    }
                }
                catch
                {
                    base.Response.Write("<script>alert('Lỗi, Đăng nhập không hợp lệ !.')</script>");
                }
                finally 
                {
                    if (this.Session["Redirect"] == null)
                    {
                        if (this.Session["UserNme"] != null)
                        {
                            base.Response.Redirect("~/ModKhachSan/QL_KhachSan.aspx", true);
                        }
                        else
                        {
                            base.Response.Redirect("~/ModSystem/Login.aspx", true);
                        }
                    }
                    else
                    {
                        base.Response.Redirect(this.Session["Redirect"].ToString());
                    }
                }

            }
            
            
           
        }
        /// <summary>
        /// Checktextbox remove SQLjection Attact
        /// </summary>
        /// <param name="txtBox"></param>
        /// <returns></returns>
        public bool CheckTextbox(TextBox txtBox)
        {
            bool bkq = false;
            try
            {
                if (txtBox.Text == "")
                {
                    return false;
                }
                if (txtBox.Text.ToUpper().Replace("'", "").Replace(" OR ", "") != txtBox.Text.ToUpper())
                {
                    bkq = false;
                }
                else
                {
                    bkq = true;
                }
            }
            catch
            {
                return bkq;
            }
            return bkq;
        }
    }
}